Multi-Channel Active Noise Control System with Channel Equalization

ABSTRACT

A multiple error filtered-x least mean square (MEFxLMS) algorithm using a channel equalization virtual secondary path for an active noise control/cancellation (ANC) system for treating noise in a Multiple-Input Multiple-Output (MIMO) system. The channel equalization technique equalizes amplitude levels of the estimated response of all primary channels to overcome limitations caused by the frequency dependent property of standard filtered-x least mean square (FxLMS) algorithm, reduce the variation of convergence speed existed in the multiple channels, and improve the overall performance of the control system. The convergence property of the algorithm is analyzed in the frequency domain.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. provisional Application No. 61/317,769 filed Mar. 26, 2010, the disclosure of which is incorporated in its entirety by reference herein.

TECHNICAL FIELD

Noise in the cabins of automotive vehicles may be caused by several sources including powertrain, tire-to-road contact, wind, and a variety of electromechanical accessories. The powertrain noise is typically most dominant when the vehicle's engine is idling or varying in speed. These noise components, especially the powertrain noise inside the vehicle, can be annoying to the passengers and may play a major role in the perceived quality of the vehicle design. Furthermore, demands for better NVH (noise, vibration and harshness) performance requires some or all of these noise components be treated effectively.

BACKGROUND

One possible way to reduce objectionable powertrain noise is to employ an active noise cancellation (ANC) system to tune the sound perceived by vehicle occupants.

Among the considerations that are important to in the analysis of powertrain noise are: (1) powertrain noise is typically dominated by a large number of harmonics; and (2) the amplitude and frequency of each harmonic are functionally related to the rotational speed of the engine. Therefore, the frequency range of interest is fairly broad, since an automotive vehicle engine may operate over a large speed range (revolutions per minute, rpm).

The properties of the convergence are affected by the eigenvalue spread of the autocorrelation matrix of the filtered reference signal. In general, the eigenvalues of the autocorrelation matrix of the filtered reference signal are variable throughout the frequency range of interest, which leads to frequency dependent behavior of the convergence. Hence, each frequency will have its own optimal step size. To maintain system stability, the step size should be chosen based on the frequency that has the smallest optimal step size. Otherwise, the system will become unstable firstly at that frequency. This may, however, tend to degrade the overall performance of the ANC system, because the step size chosen in that way is only optimal for that particular frequency and too small for other frequency components. This may slow down the convergence speed for other frequencies and degrade the overall performance of system.

Several variations of filtered-X least mean square (FxLMS) algorithms have been suggested. A preconditioned LMS algorithm adds another filter to flatten the magnitude response from controller output to error signal. (S. J. Elliott and J. G. Cook, “A preconditioned LMS algorithm for rapid adaptation of feed-forward controllers,” Proceeding of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP'00), Vol. 2, pp. 845-848, Istanbul, Turkey, (2000).)

To improve the convergence speed of the standard FxLMS algorithm, it has been proposed that the determinant of autocorrelation matrix should be as flat as possible. Among ways to achieve this are to adjust the positions of secondary sources (speakers) and error sensors (microphones), increase the number of secondary sources, and add an inverse filter of the secondary path. (G. Chen, M. Abe, and T. Sone, “Improvement of the convergence properties of the ANC system based on analysis in the frequency domain,” Proceeding of Active 95, Newport Beach, Calif., pp. 1013-1024, (1995).

The amplitude of the reference signal may be chosen to be inversely proportional to the magnitude response of the secondary path at the corresponding frequency. (S. M. Kuo, M. Tahernezhadi, and W. Hao, “Convergence analysis of narrow-band active noise control system,” IEEE Transactions on Circuits and Systems-II: An Analog and Digital Signal Processing, Vol. 46, No. 2, pp. 220-223, (1999)).

It is also known to apply a frequency domain fast least mean square (FLMS) to deal with the problem of slow convergence speed. (J. Duan, et. al., “Active Control of Powertrain Noise Using a Frequency Domain Filtered-x LMS Algorithm,” Proceedings of the SAE Noise and Vibration Conference and Exhibition, St. Charles, Ill., Paper No. 2009-01-2145, (2009)) However, such an approach increases the computational cost and/or the algorithm's complexity.

Another suggested approach is the use of an eigenvalue equalization filtered-x least mean square (EE-FxLMS) algorithm. See, for example, US Patent Application 2008/0144853A1, and “Eigenvalue equalization filtered-x algorithm for the multi-channel active noise control of stationary and non-stationary signals,” Journal of the Acoustical Society of America, Vol. 123, No. 6, pp. 4238-4249, (2008).

The eigenvalue equalization technique flattens the response of each secondary path independently of one another and so does not properly deal with the interactions between secondary paths. This technique therefore experiences difficulties when it is applied to a multiple channel [MIMO] ANC system, especially where there are unbalanced responses of secondary paths.

It is therefore an objective of the present invention to provide a method by which, in a multi-input multi-output (MIMO) ANC system, improved performance may be achieved by performing equalization amongst the channels to keep the coupling effects between the channels unchanged.

SUMMARY

In a disclosed embodiment, a method of operating a multi-channel active noise cancellation comprises operating a random noise generator to feed noise to at least two control sources; using at least two transducers to measure responses to the noise; forming an estimated secondary path transfer function matrix (SPTFM) based upon the transducer responses; taking a Fast Fourier Transform of the estimated SPTFM; calculating a mean magnitude of a main path of each column of the estimated SPTFM; dividing each column of the estimated SPTFM by its respective main path mean magnitude; multiplying by a reference value to obtain a virtual SPTFM; applying a filtered-x least mean squares algorithm with the virtual SPTFM to update coefficients of an adaptive filter; generating a reference signal correlated with the undesired noises in a working environment; filtering the reference signal using the adaptive filter to produce a cancellation signal; using the cancellation signal to drive the sources to cancel noise associated with the reference signal in the working environment; and recursively adjusting the adaptive filter with the filtered reference signal.

In another disclosed embodiment, a method for modeling a secondary path for an active noise control system having at least two input signals and at least two output signals comprises forming an estimated secondary path transfer function matrix (SPTFM) based upon the system outputs; taking a Fast Fourier Transform of the estimated SPTFM; calculating a mean magnitude of a main path of each column of the estimated SPTFM; and dividing each column of the estimated SPTFM by its respective main path mean magnitude; multiplying by a reference value to obtain a virtual SPTFM.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described, by way of example only, with reference to accompanying drawings in which:

FIG. 1 is a schematic block diagram showing a basic configuration of a general multi-channel ANC system using channel equalization;

FIG. 2 is a flow chart showing an ANC method using channel equalization;

FIG. 3 is a schematic block diagram showing an automotive vehicle powertrain application of multi-channel ANC system with channel equalization;

FIG. 4 is a flow chart showing an ANC method using channel equalization as used in an automotive vehicle powertrain;

FIG. 5 is a schematic diagram of a two-input, two-output (2I2O) ANC system illustrating the secondary paths;

FIG. 6 a is a graph comparing the magnitude of transfer functions from secondary sources to error sensors S₁₁ and S₂₁;

FIG. 6 b is a graph comparing the magnitude of transfer functions from secondary sources to error sensors S₂₂ and S₁₂;

FIG. 7 a is a graph comparing virtual secondary path transfer functions S₁₁ ^(e) and S₂₁ ^(e) using the improved virtual secondary path algorithm;

FIG. 7 b is a graph comparing virtual secondary path transfer functions S₂₂ ^(e) and S₁₂ ^(e) using the improved virtual secondary path algorithm;

FIG. 8 a is a graph comparing ANC results between a conventional EE-FxLMS algorithm and the disclosed virtual secondary path algorithm using microphone 1 in the system of FIG. 5;

FIG. 8 b is a graph comparing ANC results between a conventional EE-FxLMS algorithm and the disclosed virtual secondary path algorithm using microphone 2 in the system of FIG. 5;

FIG. 9 a is a graph comparing ANC results between the improved virtual secondary path algorithm with and without turning point using Microphone 1; and

FIG. 9 b is a graph comparing ANC results between the improved virtual secondary path algorithm with and without turning point using Microphone 2.

FIG. 10 is a flow chart showing the Channel Equalization procedure.

DETAILED DESCRIPTION

As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms. The figures are not necessarily to scale; some features may be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention.

The disclosed method implements a channel equalization (CE) virtual secondary path algorithm, which is meant to improve the performance of multiple-channel active noise control system with either single-reference or multiple-reference signals. In practice, because of the arrangement and sensitivities of the actuators (speakers), transducers (microphones) and physical environment, the magnitude of the main secondary path transfer functions can be very different from each other. This difference will cause difficulty in the overall convergence of the algorithm, which will result in minimal attenuation at some of the channels. The disclosed channel equalization virtual secondary path algorithm is designed to tackle this difficulty by equalizing the mean magnitude of the main secondary paths and adjusting other secondary paths correspondingly to keep the coupling effects among the channels unchanged. The performance of the disclosed algorithm is validated by a single-reference two-input two-output active powertrain noise control system.

FIG. 1 is a block diagram of a multiple-reference, multiple-input multiple-output (MIMO) system using channel equalization as applied to a general, multi-channel ANC system. FIG. 3 is a similar block diagram, but as applied to an ANC system used to cancel the powertrain noise in an automotive vehicle. One or more reference sensors 1 may be, for example, tachometer sensors (reading the RPM of an engine, motor, generator, or other rotating machine), accelerometers (reading vibrations in a vehicle suspension system, for example), or microphones (detecting noise signals of any kind). Reference signal generator 2 generates a reference signal x(n) according to the sensor signals. In the application of vehicle powertrain noise control, for example, a tachometer signal captures the rotational speed of an engine or drive shaft and the reference signal may be a combination of several targeted rotational orders of engine crankshaft (or/and drive shaft) speed can be generated using a sine wave generator based on the calculated speed. In the typical case, tachometer signal or equivalent one is used to generate harmonics as the reference for harmonic response control and the sound signal is used directly as the reference.

Noise sources (block 3) are the noises in the operating environment that are to be cancelled by the ANC system. For example, noise sources in an automotive environment may be associated with the engine, other portions of the driveline, suspension, road induced noise, etc.

Adaptive filters W(n) (block 4) are used to filter the reference signal to generate signals driving the control speakers. M is the total number of control speakers, so there are also M driving signals. Filter coefficients are automatically and recursively adjusted through FX-LMS control algorithm (block 11), as will be discussed further below.

A secondary path transfer function matrix S (block 5) relates the control signals (sent to speakers M) to the sound pressure responses (measured by the error microphones K),

$S = \begin{bmatrix} S_{11} & \cdots & S_{1\; M} \\ \vdots & \ddots & \vdots \\ S_{K\; 1} & \cdots & S_{KM} \end{bmatrix}_{K \times M}$

where S_(km) represents the transfer function from the m-th speaker to k-th error microphone. K is the total number of error transducers.

A random noise generator (block 6) feeds a secondary disturbance v(n) to the control speakers. Secondary disturbance v(n) is uncorrelated with the control input signal x(n) in order to allow an estimation of a secondary path transfer function matrix Ŝ.

An estimated secondary path transfer function matrix Ŝ (see block 7) is defined as:

$\hat{S} = \begin{bmatrix} {\hat{S}}_{11} & \cdots & {\hat{S}}_{1\; M} \\ \vdots & \ddots & \vdots \\ {\hat{S}}_{K\; 1} & \cdots & {\hat{S}}_{KM} \end{bmatrix}_{K \times M}$

The estimated secondary path transfer function matrix Ŝ is constructed using system identification of LMS algorithm (block 8).

$\hat{S} = \begin{bmatrix} {\hat{S}}_{11} & \cdots & {\hat{S}}_{1\; M} \\ \vdots & \ddots & \vdots \\ {\hat{S}}_{K\; 1} & \cdots & {\hat{S}}_{KM} \end{bmatrix}_{K \times M}$

In a process known as channel equalization (CE) (block 9), the mean amplitudes of primary elements of the estimated Secondary Path Transfer Function Matrix are equalized and other elements are adjusted correspondingly to keep the coupling effect unchanged. CE may be performed only in the frequency range of interest.

The transfer function yielded by the CE process is referred to as a virtual secondary path transfer function S^(e) (block 10): Equalized secondary path transfer function for filtered-x least mean square algorithm (FxLMS).

$S^{e} = \begin{bmatrix} S_{11}^{e} & \ldots & S_{1M}^{e} \\ \vdots & \ddots & \vdots \\ S_{K\; 1}^{e} & \ldots & S_{KM}^{e} \end{bmatrix}_{K \times M}$

Here, S^(e) is used to filter the reference signal x(n) to yield the filtered reference signal x′(n).

A filtered-x LMS algorithm (block 11) is used to update the Adaptive Filters W(z) (block 4).

Error feedback signals e(n) (block 12) are the error signals sensed by each of the K transducers (error microphones, in this example).

FIGS. 2 and 4 illustrate the functioning of the system described above in the form of a method flow chart, with the method steps corresponding to the blocks of FIGS. 1 and 3 respectively.

A single reference signal x(n) may be used for all the M adaptive filters, or multiple reference signals may be used.

In the vehicle powertrain example, the frequencies of the reference signal can be calculated by using the engine crankshaft speed data estimated from the measured raw tachometer signals. Then, assuming x(n) is a superposition of a series of pure sine waves, it can be expressed as:

$\begin{matrix} {{x(n)} = {\sum\limits_{i = 1}^{N}{a_{i}{\sin \left( {2\pi \; {{nf}_{i}/f_{s}}} \right)}}}} & \left. 1 \right) \end{matrix}$

where a_(i) is the amplitude of the i^(th) order, f_(i) is the frequency of the i^(th) order, and f_(s) is the sampling rate. With the information contained in the above equation, it is then possible to target the specific harmonics for tuning.

The objective of controller design is to minimize the sum of the squares of residual noise terms measured by K error sensors. Accordingly, the adaptive filter coefficients update in time domain can be expressed as:

w _(m)(n+1)=w _(m)(n)+μx _(km)(n)e _(k)(n)  2)

where w_(m)(n)∝[w_(m,0)(n) w_(m,1)(n) . . . w_(m,L-1)(n)]^(T), m=1, 2, . . . , M, M represents the number of adaptive filters; e_(k) (n) is the residual noise at the k^(th) error sensor; L is the adaptive filter length; and x′_(km)(n) is the filtered reference signal calculated by the convolution of the x(n)∝[x(n) x(n−1) . . . x(n−L+1)]^(T) and the estimate of the secondary path S_(km) from the m^(th) secondary source to the k^(th) error sensor Ŝ_(km). The estimate of the secondary path is generated by injecting a secondary disturbance (for example, a small amount of white noise) v(n) through the control input speaker. By using a secondary disturbance v(n) that is uncorrelated with the control input signal u(n), the secondary path can be updated using the standard LMS algorithm. This is called off-line modeling (also known as off-line system identification) technique.

P(n) represents the powertrain noise in the automotive example. The convergence speed of the algorithm is determined by the eigenvalue spread of the autocorrelation matrix of the filtered reference signal x′(n) and can be written as:

R=E[x′ ^(T)(n)x′(n)]  3)

where E[ ] represent the statistical expectation operator. Accordingly, the eigenvalue spread denoted by ρ can be defined as the ratio between the largest eigenvalue and smallest eigenvalue of the autocorrelation matrix R,

$\begin{matrix} {\rho = \frac{\lambda_{\max}}{\lambda_{\min}}} & \left. 4 \right) \end{matrix}$

Alternatively, the algorithm shown in equation (2) can be expressed in the frequency domain as:

W(n+1,ω)=W(n,ω)+μX′ ^(H)(n,ω)E(n,ω)  5)

where the operation [·]^(H) indicates the Hermitian transpose, and

E(n,ω)=[E ₁(n,ω) E ₂(n,ω) . . . E _(K)(n,ω)]^(T)  6)

W(n,ω)=[W ₁(n,ω) W ₂(n,ω) . . . W _(M)(n,ω)]^(T)  7)

The filtered reference matrix X′(n,ω) is a K×M matrix defined by:

$\begin{matrix} {{X^{\prime}\left( {n,\omega} \right)} = \begin{bmatrix} {X_{11}^{\prime}\left( {n,\omega} \right)} & {X_{12}^{\prime}\left( {n,\omega} \right)} & \ldots & {X_{1M}^{\prime}\left( {n,\omega} \right)} \\ {X_{21}^{\prime}\left( {n,\omega} \right)} & {X_{22}^{\prime}\left( {n,\omega} \right)} & \ldots & {X_{2M}^{\prime}\left( {n,\omega} \right)} \\ \vdots & \vdots & \; & \vdots \\ {X_{K\; 1}^{\prime}\left( {n,\omega} \right)} & {X_{K\; 2}^{\prime}\left( {n,\omega} \right)} & \ldots & {X_{KM}^{\prime}\left( {n,\omega} \right)} \end{bmatrix}} & \left. 8 \right) \end{matrix}$

where X′_(km)(n,ω)=Ŝ_(km)(n,ω)X(n,ω). Here, X(n,ω) is the reference signal of x(n) in frequency domain, and Ŝ_(km)(n,ω) is the estimate of the secondary path transfer function from the m^(th) secondary source to the k^(th) error sensor in frequency domain. Equation (7) can be expanded as:

$\begin{matrix} {{X^{\prime}\left( {n,\omega} \right)} = \begin{bmatrix} {{\hat{S}}_{11}X} & {{\hat{S}}_{12}X} & \ldots & {{\hat{S}}_{1M}X} \\ {{\hat{S}}_{21}X} & {{\hat{S}}_{22}X} & \ldots & {{\hat{S}}_{2M}X} \\ \vdots & \vdots & \; & \vdots \\ {{\hat{S}}_{K\; 1}X} & {{\hat{S}}_{K\; 2}X} & \ldots & {{\hat{S}}_{KM}X} \end{bmatrix}} & \left. 9 \right) \\ {{X^{\prime}\left( {n,\omega} \right)} = {{\begin{bmatrix} {\hat{S}}_{11} & {\hat{S}}_{12} & \ldots & {\hat{S}}_{1M} \\ {\hat{S}}_{21} & {\hat{S}}_{22} & \ldots & {\hat{S}}_{2M} \\ \vdots & \vdots & \; & \vdots \\ {\hat{S}}_{K\; 1} & {\hat{S}}_{K\; 2} & \ldots & {\hat{S}}_{KM} \end{bmatrix}\begin{bmatrix} X & 0 & \ldots & 0 \\ 0 & X & \ldots & 0 \\ \vdots & \vdots & \; & \vdots \\ 0 & 0 & \ldots & X \end{bmatrix}} = {\hat{S}X}}} & \left. 10 \right) \end{matrix}$

It may be noted that (n,ω) has been omitted from Equations (8) and (9) for simplification. Then, Equation (3) can be written in frequency domain as

R(ω)=E[X′ ^(H)(n,ω)X′(n,ω)]=E[X ^(H) Ŝ ^(H) ŜX]  11)

The power spectrum matrix R(ω) is an M×M matrix at each frequency bin ω. Therefore, the convergence behavior at the frequency bin ω can be clearly observed. The convergence properties are still determined by the eigenvalue spread of R(ω) at each frequency bin ω. Accordingly, Equation (4) can be expressed in the frequency domain as:

$\begin{matrix} {\rho_{1} = \frac{\lambda_{\max}(\omega)}{\lambda_{\min}(\omega)}} & \left. 12 \right) \end{matrix}$

where λ_(max) and λ_(min) are the largest and smallest eigenvalues at the frequency bin ω, respectively. It is well known that a smaller ρ₁ can achieve a faster convergence.

Eigenvalue equalization may optionally be applied along with channel equalization to improve performance of a system.

Observing the convergence over the whole frequency range, the eigenvalue spread can be revised as:

$\begin{matrix} {\rho_{2} = \frac{\max \left\{ {\lambda_{\max}(\omega)} \right\}}{\min \left\{ {\lambda_{\min}(\omega)} \right\}}} & \left. 13 \right) \end{matrix}$

where max{λ_(max)(ω)} and min{λ_(min)(ω)} represent the maximum and minimum eigenvalues over the entire frequency range of interest.

Hence, to study the convergence property of the system, we calculate all eigenvalues of autocorrelation matrix R(ω). This will cause a heavy computational burden especially when the length of the control filter is long. Instead of calculating the eigenvalues of the matrix R(ω), we can evaluate the convergence speed approximately by using the determinant spread of R(ω) over the entire frequency range of interest as:

$\begin{matrix} {\rho_{3} = \frac{\max \left\{ {{R(\omega)}} \right\}}{\min \left\{ {{R(\omega)}} \right\}}} & \left. 14 \right) \end{matrix}$

where |R(ω)| is the determinant of matrix R(ω), which can be expressed as:

|R(ω)|=E[|X(ω)|² ]|Ŝ ^(H)(ω){circumflex over (S)}(ω)|  15)

Since the reference signal in this example is generated by a sine wave generator, we can easily set the reference signal with equal amplitude at all harmonics over the entire frequency range of interest. Hence, the power spectrum of the reference signal at each frequency bin ω will be the same. Thus, Equation (14) can be derived as:

$\begin{matrix} {\rho_{3} = \frac{\max \left\{ {{{{\hat{S}}^{H}(\omega)}{\hat{S}(\omega)}}} \right\}}{\min \left\{ {{{{\hat{S}}^{H}(\omega)}{\hat{S}(\omega)}}} \right\}}} & \left. 16 \right) \end{matrix}$

As noted above, to achieve faster convergence, a smaller ρ₃ is required. This implies that |Ŝ^(H)(ω)Ŝ(ω)| should be as flat as possible over the entire frequency range of interest.

The eigenvalue equalization filtered-x least mean square (EE-FxLMS) algorithm may be used to flatten the magnitude response of Ŝ_(km)(n,ω) for each secondary path in the system by modifying the magnitude in frequency domain. To maintain stability, the phase is kept unchanged. The resultant modified estimation of the secondary path is referred to as a virtual secondary path, which is expressed as S_(km) ^(e). This virtual secondary path is then used to replace the estimated model of the secondary path in the original version of the FxLMS algorithm. The algorithm applying this technique is illustrated in FIG. 1.

When the virtual secondary path is applied in the FxLMS algorithm, |Ŝ^(H)(ω)Ŝ(ω)| in Equation (16) is replaced by |S^(eH)(ω)S^(e)(ω)|. In the single-input, single-output (SISO) ANC system, the determinant of |S^(eH)(ω)S^(e)(ω)| becomes the power of the virtual secondary path |S^(e)|² from the secondary source to the error sensor. Since S^(e) has a flat magnitude in each frequency bin, the overall convergence speed in all frequency bins is naturally improved. How the magnitude of S^(e) is to be chosen is not a critical issue for a SISO system because the magnitude errors can be compensated by tuning the value of step size parameter. However, it is important to choose the magnitude of the virtual secondary path S_(km) ^(e) for a multiple-input, multiple-output (MIMO) system. Selection of the magnitude of the secondary path (the estimated secondary path Ŝ_(km) or the virtual secondary path S_(km) ^(e)) is critical to convergence speed to each channel. In the example discussed, the multiple channel control system has identical number of control speakers and error sensors, M=K. Thus, the update equation of the i-th adaptive filter can be written as

w _(i)(n+1)=w _(i)(n)+μ[{circumflex over (S)}_(1i)(n)*x(n)]e ₁(n)+ . . . +μ[{circumflex over (S)}_(ii)(n)*x(n)]e _(i)(n)+ . . . +μ[{circumflex over (S)}_(Mi)(n)*x(n)]e _(M)(n)  18)

where μ is the step size parameter and i=1, 2, . . . , M. It is apparent that that the adaptive algorithm for such a control system requires that the signal from every error sensor is used at each iteration to adjust the controller of each secondary source. Also, each error signal is weighted by corresponding estimated secondary path. The estimated secondary path transfer function matrix in frequency domain can be expressed as

$\begin{matrix} {\hat{S} = \begin{bmatrix} {\hat{S}}_{11} & {\hat{S}}_{12} & \ldots & {\hat{S}}_{1M} \\ {\hat{S}}_{21} & {\hat{S}}_{22} & \ldots & {\hat{S}}_{2M} \\ \vdots & \vdots & \; & \vdots \\ {\hat{S}}_{M\; 1} & {\hat{S}}_{M\; 2} & \ldots & {\hat{S}}_{MM} \end{bmatrix}_{M \times M}} & \left. 19 \right) \end{matrix}$

Assume that the estimated secondary path Ŝ_(ii) is the main path of the i-th column of Ŝ so that the main path of each column vectors is the diagonal element of the secondary path matrix Ŝ. Main path means one control speaker (the i-th control speaker) has more influence on one error sensor (the i-th error sensor) than any other error sensors. In fact, the i-th column of Ŝ are the weights used to update the i-th adaptive filter as equation (18). Hence, the main path Ŝ_(ii) is the biggest weight for updating w_(i). Mathematically, the mean magnitude value of Ŝ_(ii) is larger than the mean magnitude value of Ŝ_(k≠i,i), where k=1, 2, . . . , M. Ŝ_(j≠i,i) are coupling estimated secondary paths for the i-th channel. In practice, the magnitude of each main path mostly is not identical to each other. Without losing generality, we assume the mean magnitude value of Ŝ_(ii) is larger than the mean magnitude value of Ŝ_(jj), where j=1, 2, . . . , M, but j≠i, expressed as mean[Ŝ_(ii)]>mean[Ŝ_(jj)].

The extreme case of this phenomenon may be studied as follows. If mean[Ŝ_(ii)]>>mean[Ŝ_(jj)], because the coupling secondary paths are smaller than the main path, the adaptive filter w_(j) will converge much slower than the adaptive filter w_(i) by applying equation (18).

Channel equalization (CE) is applied to improve the overall convergence speed of the MIMO ANC system. The idea is to normalize the mean magnitude value of the main secondary paths of each column of the secondary path matrix Ŝ while keeping the coupling ratios between couple weights and the biggest weight unchanged. The normalization process is implemented as

$\begin{matrix} {S^{e} = {\alpha \begin{bmatrix} \frac{{\hat{S}}_{11}}{{mean}\left\lbrack {\hat{S}}_{11} \right\rbrack} & \frac{{\hat{S}}_{12}}{{mean}\left\lbrack {\hat{S}}_{12} \right\rbrack} & \ldots & \frac{{\hat{S}}_{1M}}{{mean}\left\lbrack {\hat{S}}_{MM} \right\rbrack} \\ \frac{{\hat{S}}_{21}}{{mean}\left\lbrack {\hat{S}}_{11} \right\rbrack} & \frac{{\hat{S}}_{22}}{{mean}\left\lbrack {\hat{S}}_{22} \right\rbrack} & \ldots & \frac{{\hat{S}}_{2M}}{{mean}\left\lbrack {\hat{S}}_{MM} \right\rbrack} \\ \vdots & \vdots & \; & \vdots \\ \frac{{\hat{S}}_{M\; 1}}{{mean}\left\lbrack {\hat{S}}_{11} \right\rbrack} & \frac{{\hat{S}}_{M\; 2}}{{mean}\left\lbrack {\hat{S}}_{22} \right\rbrack} & \ldots & \frac{{\hat{S}}_{MM}}{{mean}\left\lbrack {\hat{S}}_{MM} \right\rbrack} \end{bmatrix}}_{M \times M}} & \left. 20 \right) \end{matrix}$

Again, S^(e) is virtual secondary path. Here, the eigenvalue equalization technique is not used to modify the secondary path, but only the proposed channel equalization technique. More specifically, the virtual secondary path found using only the channel equalization technique (without eigenvalue equalization) is referred to as the channel equalized (CE) virtual secondary path.

In equation (20), α is a reference value. It can be set to any desired value. Usually, α is set to unit value 1, or the mean magnitude of the main secondary path that has the maximum mean magnitude among all main paths from column 1 to column M. mean[Ŝ_(km)] is the mean magnitude value of the secondary path Ŝ_(km) in the frequency range of interests.

For more general cases, the number of control speakers is not equal to the number of error sensors K≠M or K=M, so that the main path may be an off-diagonal element.

$\begin{matrix} {\hat{S} = \begin{bmatrix} {\hat{S}}_{11} & {\hat{S}}_{12} & \ldots & {\hat{S}}_{1M} \\ {\hat{S}}_{21} & {\hat{S}}_{22} & \ldots & {\hat{S}}_{2M} \\ \vdots & \vdots & \; & \vdots \\ {\hat{S}}_{K\; 1} & {\hat{S}}_{K\; 2} & \ldots & {\hat{S}}_{KM} \end{bmatrix}_{K \times M}} & \left. 21 \right) \end{matrix}$

The first step is to find the main path of the i-th column of Ŝ. Assume that Ŝ_(i) ^(main) is the main path of the i-th column and α is a reference value. Then, we equalize the magnitude of the main path according to the reference value as

$\begin{matrix} {S^{e} = {\alpha \begin{bmatrix} \frac{{\hat{S}}_{11}}{{mean}\left\lbrack {\hat{S}}_{1}^{main} \right\rbrack} & \frac{{\hat{S}}_{12}}{{mean}\left\lbrack {\hat{S}}_{2}^{main} \right\rbrack} & \ldots & \frac{{\hat{S}}_{1M}}{{mean}\left\lbrack {\hat{S}}_{M}^{main} \right\rbrack} \\ \frac{{\hat{S}}_{21}}{{mean}\left\lbrack {\hat{S}}_{1}^{main} \right\rbrack} & \frac{{\hat{S}}_{22}}{{mean}\left\lbrack {\hat{S}}_{2}^{main} \right\rbrack} & \ldots & \frac{{\hat{S}}_{2M}}{{mean}\left\lbrack {\hat{S}}_{M}^{main} \right\rbrack} \\ \vdots & \vdots & \; & \vdots \\ \frac{{\hat{S}}_{K\; 1}}{{mean}\left\lbrack {\hat{S}}_{1}^{main} \right\rbrack} & \frac{{\hat{S}}_{K\; 2}}{{mean}\left\lbrack {\hat{S}}_{2}^{main} \right\rbrack} & \ldots & \frac{{\hat{S}}_{KM}}{{mean}\left\lbrack {\hat{S}}_{M}^{main} \right\rbrack} \end{bmatrix}}_{K \times M}} & \left. 22 \right) \end{matrix}$

In this way, the mean magnitudes of the main secondary paths of the secondary path matrix are all equalized to the reference value α. The mean magnitudes of other secondary paths in the column i are adjusted correspondently to keep the coupling effects unchanged, and they are less than α.

The above-described channel equalization technique may be combined with the eigenvalue equalization technique to achieve better performance of MIMO systems, and is particularly useful in an ANC system applied to an automotive powertrain noise application. In this case, S^(e) still present the virtual secondary path by combined techniques, namely EE-CE virtual secondary path. The procedure is to first equalize the magnitude along frequencies of each secondary path by eigenvalue equalization technique, and next to equalize the mean magnitude along channels by the channel equalization technique.

In the disclosed example, the method is carried out using a two-input two output (2I2O) ANC system as shown in FIG. 5. After applying eigenvalue equalization, the virtual secondary path becomes

$\begin{matrix} {S^{e} = \begin{bmatrix} S_{11}^{EE} & S_{12}^{EE} \\ S_{21}^{EE} & S_{22}^{EE} \end{bmatrix}_{2 \times 2}} & \left. 23 \right) \end{matrix}$

We assume that the Ŝ₁₁ and Ŝ₂₂ are the main paths of the first and second column of secondary path matrix Ŝ, respectively, and the mean[Ŝ₂₂]>mean[Ŝ₁₁]. By applying a channel equalization technique, the main paths of the virtual secondary path were normalized to the mean magnitude value of Ŝ₂₂, which mean the reference value α=mean[Ŝ₂₂]. Thus, the virtual secondary path becomes

$\begin{matrix} {S^{e} = {\alpha \begin{bmatrix} \frac{S_{11}^{EE}}{{mean}\left\lbrack {\hat{S}}_{11} \right\rbrack} & \frac{S_{12}^{EE}}{{mean}\left\lbrack {\hat{S}}_{22} \right\rbrack} \\ \frac{S_{21}^{EE}}{{mean}\left\lbrack {\hat{S}}_{11} \right\rbrack} & \frac{S_{22}^{EE}}{{mean}\left\lbrack {\hat{S}}_{22} \right\rbrack} \end{bmatrix}}_{2 \times 2}} & \left. 24 \right) \end{matrix}$

For example, the estimated secondary path transfer functions for a two-input, two-output ANC system, Ŝ₁₁, Ŝ₁₂, Ŝ₂₁, and Ŝ₂₂, were experimentally obtained on the test vehicle. The results of this are shown in FIG. 6. The two control speakers may be located in the front left and right passenger doors, respectively. The two error microphones are placed adjacent the ceiling of vehicle over driver's and passenger's head positions, respectively. The secondary path transfer functions were modeled by injecting white random noise to the control speakers and measuring the responses of the error microphones.

All four secondary path transfer functions were modeled using a 256-tap finite impulse response (FIR) filter by least mean square (LMS) algorithm. By applying the EE-CE virtual secondary path as equations (23) and (24), four virtual secondary paths are presented in FIG. 7. It is seen that the magnitude of S₁₁ ^(e) is equal to magnitude of S₂₂ ^(e), and the ratios of S₂₁ ^(e)/S₁₁ ^(e) and S₁₂ ^(e)/S₂₂ ^(e) stay as the original ratios of S₂₁/S₁₁ and S₁₂/S₂₂ in the frequency range of interest. The frequency range of interest here is 50 Hz to 300 Hz.

FIG. 10 shows, in the form of a flow chart, details of the channel equalization process described above. In FIG. 11, lowercase letter such as [ŝ]_(KM) represents the finite impulse response of the secondary path transfer function matrix, while capital letter such as [Ŝ]_(KM) represents the frequency response of the secondary path transfer function matrix.

The method described herein can be examined using a mathematical simulation and analysis program such as MATLAB/Simulink. The baseline signals of the powertrain noise along with tachometer signal are recorded during testing of an actual experimental vehicle, during which the engine speed ramps up from 1000 rpm to 5500 rpm within 10 seconds. The four secondary path transfer functions for a two-input, two-output ANC system, S₁₁, S₁₂, S₂₁, and S₂₂, were experimentally obtained on the test vehicle as shown in FIGS. 6 a,b. The estimates of the secondary path may be modeled using a 256-tap finite impulse response (FIR) filter.

For demonstration purpose, the purpose of these simulations is to reduce the response of the 1.5^(th), 2^(nd), and 3^(rd) order as much as possible. By applying the EE-CE virtual secondary path algorithm, four virtual secondary paths are presented in FIGS. 7 a and 7 b. It is seen that the magnitude of S₁₁ ^(e) is equal to the magnitude of S₂₂ ^(e), and the ratios of S₂₁ ^(e)/S₁₁ ^(e) and S₁₂ ^(e)/S₂₂ ^(e) stay as the primary ratios of S₂₁/S₁₁ and S₁₂/S₂₂ in the frequency range of interest. The frequency range of interest here is 50 Hz to 300 Hz.

FIGS. 8 a and 8 b show the simulation results for sound reduction at 3^(rd) order, which is the cylinder firing order of the engine being analyzed in this example. FIG. 8 a is the control result at the first microphone of the two-input system of FIG. 5, and FIG. 8 b is the control result at second microphone. The step size μ for each implementation is set to the largest value for which stability is still maintained.

The solid curves in FIGS. 8 a and 8 b are the original response of the powertrain noise at microphone 1 and microphone 2, respectively. The dashed curves are the sound pressure response after the control is activated using the EE virtual secondary path algorithm. The dotted curves show the control result of the implementation of the channel equalization virtual secondary path algorithm.

It can be seen that the controlled response at microphone 1 applying the EE virtual secondary path algorithm (dashed curve in FIG. 8 a) does not show significant reduction. However, the reduction at microphone 2 depicted by the comparison of the dashed and solid curves in FIG. 8 b can be clearly seen. Also, it is apparent that the EE virtual secondary path algorithm yields an unbalanced noise reduction result between microphone 1 and microphone 2. This is because the magnitude of S₂₂ is much higher than that of S₁₁, and the original noise response at microphone 2 is higher than the noise response at microphone 1. On the other hand, from the results represented by the dotted curve in FIGS. 8 a,b, it can be seen that the EE-CE (combined eigenvalue equalization and channel equalization) virtual secondary path algorithm yields a much more balanced noise reduction result between the two different microphones. Also, the EE-CE algorithm produces a greater level of attenuation.

The performance can be further improved by adding a turning point where the step size is changed. The turning point is determined experimentally based on the specific case under consideration. In this case, 2400 rpm has been chosen as a turning point. FIGS. 9 a and 9 b shows the simulation results using the channel equalization virtual secondary path with and without using the turning point for microphone 1 and microphone 2, respectively. In FIGS. 9 a,b, the step size of the dotted curve is 1.6 times larger when the speed is below than 2400 rpm and is the same as the dashed curve one when the speed is higher than 2400 rpm. It can be clearly seen that the dotted curve is able to achieve more reduction when the engine speed is lower than 2400 rpm by using a larger step size.

While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention. Additionally, the features of various implementing embodiments may be combined to form further embodiments of the invention. 

1. A method of operating a multi-channel active noise cancellation comprising: operating a random noise generator to feed noise to at least two control sources; using at least two transducers to measure responses to the noise; forming an estimated secondary path transfer function matrix (SPTFM) [ŝ]_(KM) based upon the transducer responses; taking a Fast Fourier Transform of the estimated SPTFM [ŝ]_(KM); calculating a mean magnitude of a main path of each column of the estimated SPTFM [Ŝ]_(KM); dividing each column of the estimated SPTFM [ŝ]_(KM) by its respective main path mean magnitude; multiplying by a reference value to obtain a virtual SPTFM [s^(e)]_(KM); applying a filtered-x least mean squares algorithm with the virtual SPTFM [s^(e)]_(KM) to update coefficients of an adaptive filter; generating a reference signal correlated with the undesired noises in a working environment; filtering the reference signal using the adaptive filter to produce a cancellation signal; using the cancellation signal to drive the sources to cancel noise associated with the reference signal in the working environment; and recursively adjusting the adaptive filter with the filtered reference signal.
 2. The method of claim 1 wherein the estimated SPTFM is formed using a least mean squares algorithm.
 3. The method of claim 1 wherein an eigenvalue equalization step is performed prior to the calculating step, the eigenvalue equalization step comprising: flattening a magnitude of each secondary path of the estimated SPTFM [Ŝ]_(KM); taking the inverse-fast-Fourier-transform of the flattened estimated SPTFM to yield an equalized modified SPTFM [Ŝ^(EE)]_(KM); and performing the dividing and multiplying steps on the equalized modified SPTFM [Ŝ^(EE)]_(KM).
 4. A method for modeling a secondary path for an active noise control system having at least two input signals and at least two output signals, comprising: forming an estimated secondary path transfer function matrix (SPTFM) [ŝ]_(KM) based upon the system outputs; taking a Fast Fourier Transform of the estimated SPTFM [ŝ]_(KM); calculating a mean magnitude of a main path of each column of the estimated SPTFM; [Ŝ]_(KM) dividing each column of the estimated SPTFM [ŝ]_(KM) by its respective main path mean magnitude; multiplying by a reference value [α] to obtain a virtual SPTFM [s^(e)]_(KM). 